package com.hyper_yang._01_jdbc.dbutils;

import com.hyper_yang._01_jdbc.utils.JDBCUtil;
import org.apache.commons.dbutils.QueryRunner;
import org.junit.jupiter.api.Test;

import java.sql.Connection;
import java.sql.SQLException;

/* （下面的步骤很经典，本项目使用 maven与下面有所不同）
 1、导入 jar包
 2、添加依赖 Add as library
 3、使用
 */
public class DBUtilsTest {
    @Test
    public void testInsert() throws SQLException {
        // todo: 新增操作
        Connection connection = JDBCUtil.getConnection();
        String sql = "INSERT INTO t_account VALUES(?,?,?);";
        // 1.创建 QueryRunner对象，赋值 connection连接对象
        QueryRunner queryRunner = new QueryRunner();
        // 2.调用方法
        int res = queryRunner.update(connection, sql, 0, "小梅", 26000);
        System.out.println(res);
        // 归还资源
        connection.close();
    }

    @Test
    public void testUpdate() throws SQLException {
        // todo: 修改操作
        // 1.创建 QueryRunner对象，赋值 connection连接对象
        QueryRunner queryRunner = new QueryRunner();
        // 2.调用方法  可以直接传 JDBCUtil.getConnection() 但不建议，因为不好 close
        int res = queryRunner.update(JDBCUtil.getConnection(), "UPDATE t_account SET balance = ? WHERE `name` = ?", 16000, "小梅");
        System.out.println(res);
    }

    @Test
    public void testDelete() throws SQLException {
        // todo: 删除操作
        Connection connection = JDBCUtil.getConnection();
        // 1.创建 QueryRunner对象，赋值 connection连接对象
        QueryRunner queryRunner = new QueryRunner();
        // 2.调用方法
        int res = queryRunner.update(connection, "DELETE FROM t_account WHERE `name` = ?;", "小梅");
        System.out.println(res);
        // 归还资源
        connection.close();
    }
}
